随着以互联网、云计算为标志的信息产业的飞速发展,各种app应用遍地开花,在应用客户数达到百万千万级别和数据处理达到海量以后,采用常规的编程方式后端服务器性能会急剧下降。多线程网络编程模型正是为解决高并发问题而打磨的利器。对当前技术潮流,推出了Linux多线程并发服务器编程这门课程。本课程由浅入深,让零基础的学员可以快速掌握linux多线程网络编程技术,同时深入剖析技术背后的实现原理,让学员既知其然又知其所以然,提升学员竞争力,实现更好的职业发展。
1.课程研发环境
开发工具:VI/VIM;
操作系统:Linux Ubuntu 12.04
虚拟机:VMware Workstation 8.0
其他工具:codeblock或者xshell
2.内容简介
本课程从基础的进程、线程概念讲起逐步深入,通过理论与实践结合的方式,使学员快说掌握linux多线程网络编程技术,并理解技术背后的实现原理。课程详细讲解了网络编程涉及的数据结构、网络协议、编程接口、g++、gdb、makefile编程工具以及netstat、lsof等相关性能调试命令。并通过实例深入剖析并发服务器程序的开发流程、架构设计、运行原理、性能调优以及异步I/O模型、线程池、多线程并发控制、线程间通信等关键技术。课程共分四个部分,第一部分是linux网络编程基础理论介绍,该部分讲解了linux多线程网络编程用到的基本理论知识;第二部分为基本网络编程,介绍了linux编程基本工具使用,重点介绍了TCP套接字编程和UDP套接字编程;第三部分是高级网络编程,主要介绍了套接字选项、多种IO模型以及并发服务器用到的线程池技术;第四部分为项目案例,讲解了FTP并发服务器程序的实现。
第一部分:网络编程理论基础
第一讲:进程的引入及定义
第二讲:进程的特征及状态
第三讲:进程的调度
第四讲:线程的引入及定义
第五讲:线程的分类
第六讲:线程的互斥
第七讲:线程的同步
第八讲:线程同步与互斥案例分析(1)
第九讲:线程同步与互斥案例分析(2)
第十讲:多线程编程:linux线程库介绍
第十一讲:多线程编程:linux线程库函数(1)
第十二讲:多线程编程:linux线程库函数(2)
第十三讲:多线程编:linux线程库函数(3)
第十四讲:多线程编程:linux线程库函数(4)
第十五讲:常见数据结构:数据类型介绍
第十六讲:常见数据结构:基本数据结构(1)
第十七讲:常见数据结构:基本数据结构(2)
第十八讲:常见数据结构:STL介绍(1)
第十九讲:常见数据结构:STL介绍(2)
第二十讲:OSI网络模型与TCP/IP模型
第二十一讲:TCP协议与UDP协议
第二部分:基本网络编程:
第二十二讲:Linux常用命令(1)
第二十三讲:Linux常用命令(2)
第二十四讲:VIM用法介绍(1)
第二十五讲:VIM用法介绍(2)
第二十六讲:g++及makefile用法介绍(1)
第二十七讲:g++及makefile用法介绍(2)
第二十八讲:g++及makefile用法介绍(3)
第二十九讲:socket网络编程简介(1)
第三十讲:socket网络编程简介(2)
第三十一讲:TCP套接字基本网络编程(1)
第三十二讲:TCP套接字基本网络编程(2)
第三十三讲:TCP套接字基本网络编程(3)
第三十四讲:TCP套接字基本网络编程(4)
第三十五讲:TCP套接字基本网络编程(5)
第三十六讲:UDP套接字基本网络编程(1)
第三十七讲:UDP套接字基本网络编程(2)
第三十八讲:UDP套接字基本网络编程(3)
第三部分:高级网络编程初探
第三十九讲:套接字选项(1)
第四十讲:套接字选项(2)
第四十一讲:套接字选项(3)
第四十二讲:IO模型(1)
第四十三讲:IO模型(2)
第四十四讲:IO模型(3)
第四十五讲:Linux系统日志
第四十六讲:线程池技术(1)
第四十七讲:线程池技术(2)
第四十八讲:线程池技术(3)
第四十九讲:线程池技术(4)
第四部分项目案例:
第五十讲:并发服务器编程(1)
第五十一讲:并发服务器编程(2)
第五十二讲:并发服务器编程(3)
第五十三讲:并发服务器编程(4)
目标一. 掌握进程和线程的基本概念,理解进程的特征、状态转化、调度以及线程的分类、互斥、同步
目标二. 掌握linux线程libpthread的用法及原理。
目标三. 理解OSI网络模型与TCP/IP模型
目标四. 学会使用linux系统中的grep、ps、top、lsof常用命令,掌握vim、g++及makefile等开发、编译工具的用法。
目标五. 深入理解SOCKET网络通信的内部原理、掌握TCP和UDP基本的网络编程方法。
目标六. 掌握套接字选项使用方法,深入理解并学会使用select函数。
目标七. 深入理解线程池技术,能够自己编写线程池。
目标八:通过FTP并发服务器项目深入理解并发服务器模型,能够自己设计并开发简单的并发服务器程序。